<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Introduction</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Phoenix 3.2.0">
<link rel="prev" href="what_s_new/phoenix_3_0.html" title="Phoenix 3.0">
<link rel="next" href="starter_kit.html" title="Starter Kit">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="what_s_new/phoenix_3_0.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="starter_kit.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="phoenix.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
</h2></div></div></div>
<p>
      <span class="inlinemediaobject"><img src="../images/banner.png"></span>
    </p>
<p>
      The Phoenix library enables FP techniques such as higher order functions,
      <span class="emphasis"><em>lambda</em></span> (unnamed functions), <span class="emphasis"><em>currying</em></span>
      (partial function application) and lazy evaluation in C++. The focus is more
      on usefulness and practicality than purity, elegance and strict adherence to
      FP principles.
    </p>
<p>
      FP is a programming discipline that is not at all tied to a specific language.
      FP as a programming discipline can, in fact, be applied to many programming
      languages. In the realm of C++ for instance, we are seeing more FP techniques
      being applied. C++ is sufficiently rich to support at least some of the most
      important facets of FP. C++ is a multiparadigm programming language. It is
      not only procedural. It is not only object oriented. Beneath the core of the
      standard C++ library, a closer look into STL gives us a glimpse of FP already
      in place. It is obvious that the authors of STL know and practice FP. In the
      near future, we shall surely see more FP trickle down into the mainstream.
    </p>
<p>
      The truth is, most of the FP techniques can coexist quite well with the standard
      object oriented and imperative programming paradigms. When we are using STL
      algorithms and functors (function objects) for example, we are already doing
      FP. Phoenix is an evolutionary next step.
    </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2002-2005, 2010, 2014, 2015 Joel de Guzman, Dan Marsden, Thomas
      Heller, John Fletcher<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="what_s_new/phoenix_3_0.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="starter_kit.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
